package com.randi.framework.domain.service;

import com.randi.framework.domain.dto.ProfileUpdateDTO;
import com.randi.framework.domain.vo.ProfileInfo;
import com.randi.framework.domain.dto.ProfilePasswordUpdateDTO;
import com.randi.file.entity.vo.FileUploadVo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author ziye
 */
public interface ISysProfileService {

    /**
     * 获取用户信息
     *
     * @return 用户信息
     */
    ProfileInfo getUserInfo();

    /**
     * 更新用户信息
     *
     * @param profileUpdateDTO ProfileUpdateDTO
     * @return 更新结果
     */
    int updateLoginUser(ProfileUpdateDTO profileUpdateDTO);

    /**
     * 修改用户密码
     *
     * @param profilePasswordUpdateDTO ProfilePasswordUpdateDTO
     * @return 结果
     */
    int updateLoginUserPassword(ProfilePasswordUpdateDTO profilePasswordUpdateDTO);

    /**
     * 更新用户头像
     *
     * @param fileUpload fileUpload
     * @return 状态
     * @throws IOException IOException
     */
    int updateLoginUserAvatar(FileUploadVo fileUpload) throws IOException;

    /**
     * 预览当前头像
     *
     * @param response response
     * @param hash     哈希
     */
    void previewCurrentAvatar(HttpServletResponse response, String hash);

}
